//
//  JYShoppingCartManager.h
//  JYFarm
//
//  Created by henry on 2017/11/2.
//  Copyright © 2017年 花花. All rights reserved.
//

#import <Foundation/Foundation.h>
@class JYShopModel;
@interface JYShoppingCartManager : NSObject

@property (class, readonly, strong) JYShoppingCartManager *shareInstance;

/**
 购物车商品列表
 */
@property (nonatomic,strong) NSArray *goodsList;


//购物车数量
@property (nonatomic, assign)NSInteger totalCount;


/*******************************************************
 *                   本地操作                           *
 *******************************************************/
/**
 删除某个商品
 
 @param model 商品模型
 */
- (void)deleteGoods:(JYShopModel *)model;

/**
 批量删除商品
 
 @param goodsLost 商品数组
 */
- (void)deleteGoodsList:(NSArray <JYShopModel*>*)goodsLost;


/**
 添加某个商品
 
 @param model 商品模型
 */
- (void)addGoods:(JYShopModel *)model;

/**
 批量添加商品
 
 @param goodsLost 商品数组
 */
- (void)addGoodsList:(NSArray <JYShopModel*>*)goodsLost;


/**
 同步回调
 
 @param completeBlock 完成回调
 */
- (void)synchronize:(void(^)(BOOL succ))completeBlock;

/*******************************************************
 *                   同步操作                           *
*******************************************************/
/**
 删除某个商品

 @param model 商品模型
 @param completeBlock 完成回调
 */
- (void)syncDeleteGoods:(JYShopModel *)model completecompleteBlock:(void(^)(BOOL succ))completeBlock;

/**
 批量删除商品
 
 @param goodsLost 商品数组
 @param completeBlock 完成回调
 */
- (void)syncDeleteGoodsList:(NSArray <JYShopModel*>*)goodsLost completecompleteBlock:(void(^)(BOOL succ))completeBlock;


/**
 添加某个商品

 @param model 商品模型
 @param completeBlock 完成回调
 */
- (void)syncAddGoods:(JYShopModel *)model completecompleteBlock:(void(^)(BOOL succ))completeBlock;

/**
 批量添加商品
 
 @param goodsLost 商品数组
 @param completeBlock 完成回调
 */
- (void)syncAddGoodsList:(NSArray <JYShopModel*>*)goodsLost completecompleteBlock:(void(^)(BOOL succ))completeBlock;


/**
 刷新购物车

 @param completeBlock 请求完成回调
 */
- (void)refreshShoppingCart:(void(^)(JYShoppingCartManager *shoppingCartMgr,NSError *error))completeBlock;

/*******************************************************
 *                   清空购物车                          *
 *******************************************************/

- (void)cleanShoppingCart:(void(^)(BOOL succ))completeBlock;
@end
